package cn.huiyunche.base.service.interfaces;

import cn.huiyunche.base.service.vo.BindBankCardVo;
import cn.huiyunche.base.service.vo.OutUserBankCardVo;
import cn.huiyunche.base.service.vo.Result;

import java.math.BigDecimal;
import java.util.List;

/**
 * 银行卡提现
 *
 * @author hdy [Tuffy]
 */
public interface CashService {

    /**
     * 绑定银行卡
     *
     * @param bbcv 绑定对象
     * @return 结果集
     */
    Result<String> bindBankCard(BindBankCardVo bbcv) throws Exception;

    /**
     * 解绑银行卡
     *
     * @param cardId  解绑银行卡id
     * @param cashPwd 提现密码
     * @return 结果集
     */
    Result<String> unBindBankCard(String cardId, String cashPwd);

    /**
     * 我绑定的银行卡
     *
     * @return 结果集
     */
    Result<List<OutUserBankCardVo>> myBankCards() throws Exception;

    /**
     * 提现操作
     *
     * @param cardId    提现卡id
     * @param cardId    卡id
     * @param cashPwd   提现密码
     * @param isUrgency 是否加急
     * @param quickcash 是否是快速提现 0:不是 1:是
     * @param score     是否是快速提现 0:不使用 1:使用
     * @return 结果集
     */
    Result<String> cashMyCost(String cardId, String cashPwd, String isUrgency, BigDecimal amount, Integer quickcash, Integer score) throws Exception;

    /**
     * 卡合法性校验
     *
     * @param card 卡号
     * @return 结果集
     */
    Result<Object> checkBankCard(String card);

    /**
     * 人送项目 司机提现申请
     *
     * @param cashPwd
     * @param amount
     * @return
     */
    Result<String> submitSettlementAppli(String cashPwd, BigDecimal amount);
}
